1. Field of the Invention
The present invention generally relates to computer networks. More specifically, the present invention relates to a method for parallelizing the processing of a TCP byte stream.
2. Related Art
The transmission-control protocol (TCP) is part of the core Internet protocol which is used to transfer data between computing devices. The goal of TCP is to transfer data from an application on a computing device through a network to a second device as quickly, efficiently, and reliably as possible, despite potential contention and congestion problems. While the basic operation of TCP has not changed dramatically since the initial publication of the standard in 1981, the protocol has evolved in response to changing network conditions, such as new link types (e.g., wireless networks) and higher-bandwidth wired networks.
Because TCP is a byte-stream-oriented protocol, and data packets are typically processed one packet at a time in a serial fashion, the type of computational resources that are used to process TCP packets are typically individual single-threaded central-processing units (CPUs). However, increasing network bandwidths are beginning to stretch the processing capabilities of such individual CPUs. Current trends indicate that improvements in network bandwidth will continue to outpace CPU speed improvements. Consequently, limitations in CPU capabilities for processing TCP packets may lead to an inability to fully use available network bandwidth.
Hence, what is needed is a method that enables TCP to operate without the above-described limitations.